Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

486
Views
Cómo usar process.env en la sección "auth" de nuxt.config.js

Soy nuevo en Nuxt (usando Nuxt 2.15.3 + Vue2 + Javascript).

Tengo algunas dificultades con una variable de entorno AUTH_PROVIDER_URL que está configurada para ser diferente en mi configuración local, en mis servidores de ensayo y en el entorno de producción. Estoy 100% seguro de que la variable de entorno está configurada correctamente en cada entorno.

El problema que tengo está en el archivo nuxt.config.js y en la sección "autorización", donde debo señalar una URL diferente para cada entorno (local, puesta en escena, producción).

https://auth.nuxtjs.org/schemes/oauth2#options

En mi nuxt.config.js tengo:

 authorization: process.env.AUTH_PROVIDER_URL + '/auth', userInfo: process.env.AUTH_PROVIDER_URL + '/userinfo', logout: process.env.AUTH_PROVIDER_URL + '/logout',

Esto funciona bien localmente en mi computadora cuando inicio la aplicación en modo de desarrollo (npm run dev) y producción (npm run build, npm run start). Las variables (autorización, información de usuario y cierre de sesión) para las direcciones URL se configuran correctamente en función de las instrucciones process.env.AUTH_PROVIDER_URL.

Pero cuando lo implemento y lo ejecuto en los servidores de preparación y producción, process.env.AUTH_PROVIDER_URL devuelve UNDEFINED. Parece que "process.env" no encuentra la variable de entorno AUTH_PROVIDER_URL en el contexto "auth" en el archivo nuxt.config.js en los servidores de ensayo y producción.

El uso de process.env como se muestra a continuación en los archivos nuxt.config.js funciona tanto localmente, en servidores de prueba como en servidores de producción y las variables se configuran correctamente.

 export default { auth_provider_url: process.env.AUTH_PROVIDER_URL, publicRuntimeConfig: { auth_provider_url: process.env.AUTH_PROVIDER_URL, }, }

¿Cómo es que process.env funciona bien en este contexto en el archivo nuxt.config.js pero no en el contexto "auth" en nuxt.config.js? ¿Puedo acceder a estas variables en la sección "auth" del archivo nuxt.config.js?

¿Cuál es la forma preferida/correcta de manejar (usar) variables de entorno en la sección "auth" en el archivo nuxt.config.js?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Yo tuve el mismo problema. El process.env podría usarse en otra sección del archivo nuxt.config.js , pero no en la parte de auth . Supongo que el problema es que la auth está configurada antes de que se inicialice process.env .

Si también está utilizando la v5 del módulo Nuxt Auth, @nuxtjs/auth-next , entonces puede seguir esta solución.

Primero, extienda Oauth2Scheme para que acepte variables de entorno.

runtimeConfigurableScheme.ts

 import { Oauth2Scheme } from '@nuxtjs/auth-next/dist/runtime.js'; import { Auth, Oauth2SchemeOptions } from '@nuxtjs/auth-next/dist/runtime'; import { SchemePartialOptions } from '@nuxtjs/auth-next'; export default class RuntimeConfigurableOauth2Scheme extends Oauth2Scheme { constructor ($auth: Auth, options: SchemePartialOptions<Oauth2SchemeOptions>) { const configOptions = { ...options, ...$auth.ctx.$config.auth.strategies[options.name] }; super($auth, configOptions); } }

Luego, utilícelo en el archivo nuxt.config.js así:

 auth: { strategies: { custom: { scheme: '/path/to/runtimeConfigurableScheme.ts' } } }, publicRuntimeConfig: { auth: { strategies: { custom: { endpoints: { authorization: `${process.env.AUTH_URL}/realms/${process.env.AUTH_REALM}/protocol/openid-connect/auth`, token: `${process.env.AUTH_URL}/realms/${process.env.AUTH_REALM}/protocol/openid-connect/token`, userInfo: `${process.env.AUTH_URL}/realms/${process.env.AUTH_REALM}/protocol/openid-connect/userinfo`, logout: `${process.env.AUTH_URL}/realms/${process.env.AUTH_REALM}/protocol/openid-connect/logout?redirect_uri=${encodeURIComponent(process.env.LOGOUT_REDIRECT_URL)}` }, token: { property: 'access_token', type: 'Bearer', name: 'Authorization', maxAge: 300 }, refreshToken: { property: 'refresh_token', maxAge: 60 * 60 * 24 * 30 }, responseType: 'code', grantType: 'authorization_code', clientId: process.env.CLIENT_ID, scope: ['openid', 'profile', 'email', 'org'], codeChallengeMethod: 'S256' } } } }

Se puede llamar en los componentes con, por ejemplo, this.$auth.loginWith('custom') .

about 4 years ago · Juan Pablo Isaza Report

0

process.env es una variable de entorno que usted define en su sistema. en su caso local, probablemente tenga un archivo .env que contenga esas claves y cuando ejecute npm run dev , las cargará automáticamente.
Ahora, cuando crea su aplicación, algunas variables de entorno se reemplazan durante la etapa de creación, por lo que debe tenerlas disponibles cuando lo haga, pero otras no, por lo que también deberá configurarlas en su servidor durante el tiempo de ejecución.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!